<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let arr = [{
            "id": "604e21feb205b95968e13129",
            "pid": "0",
            "name": "总裁办"
        }, {
            "id": "604e223fb205b95968e1312b",
            "pid": "0",
            "name": "人事部",
        }, {
            "id": "604e2251b205b95968e1312c",
            "pid": "0",
            "name": "财务部",
        }, {
            "id": "604e2262b205b95968e1312d",
            "pid": "604e2251b205b95968e1312c",
            "name": "财务核算部"
        }, {
            "id": "604e227db205b95968e1312e",
            "pid": "604e2251b205b95968e1312c",
            "name": "税务管理部"
        }, {
            "id": "604e2297b205b95968e1312f",
            "pid": "604e2251b205b95968e1312c",
            "name": "薪资管理部"
        }, {
            "id": "6051ad90e93db6522c1d00d2",
            "pid": "0",
            "name": "技术部"
        }, {
            "id": "6051adb6e93db6522c1d00d3",
            "pid": "6051ad90e93db6522c1d00d2",
            "name": "Java研发部"
        }, {
            "id": "6051add6e93db6522c1d00d4",
            "pid": "6051ad90e93db6522c1d00d2",
            "name": "Python研发部"
        }, {
            "id": "6051adefe93db6522c1d00d5",
            "pid": "6051ad90e93db6522c1d00d2",
            "name": "Php研发部"
        }]
        let Arr = []
        let count = 0
        for (let i = 0; i < arr.length; i++) {



            if (arr[i].pid === '0') {
                count = i
                Arr[i] = {
                    'id': arr[i].id,
                    'pid': arr[i].pid,
                    'name': arr[i].name,
                    'child': []
                }
            }
            if (arr[i].pid !== '0') {
                Arr[count].child.push(arr[i])
            }
        }


        console.log(Arr);

        // function ToTree(items) {
        //     const result = [];
        //     const itemMap = {}; // 
        //     for (let i = 0; i < items.length; i++) {
        //         const id = items[i].id;
        //         const pid = items[i].pid;
        //         // 先转成map存储
        //         if (!itemMap[id]) {
        //             itemMap[id] = {
        //                 children: [],
        //             }
        //         }

        //         itemMap[id] = {
        //             ...items[i],
        //             children: itemMap[id]['children']
        //         }

        //         const treeItem = itemMap[id];

        //         if (pid === '0') {
        //             result.push(treeItem);
        //         } else {
        //             if (!itemMap[pid]) {
        //                 itemMap[pid] = {
        //                     children: [],
        //                 }
        //             }
        //             itemMap[pid].children.push(treeItem)
        //         }

        //     }
        //     return result;
        // }
        // console.log(ToTree(arr));
    </script>
</body>

</html>